﻿using System;
// 嵌套类型是声明在另一个类内部的类型。
/*
 
嵌套类型有如下特征：
    可以访问包含它的外层类中的私有成员，以及外层类所能访问的所有内容。
    可以使用所有的访问权限修饰符修饰，而不仅限于public和internal。
    嵌套类型的默认访问权限是private而不是internal。
    从外层类以外访问嵌套类型，需要用外层类名称限定（就像访问静态成员一样）。
 
 */
namespace _062_嵌套类型
{
    // 从嵌套类型访问外层私有成员的例子：
    public class TopLevel
    {
        static int x;
        public class Nested
        {
            static void Foo()
            {
                Console.WriteLine(TopLevel.x);
            }
        } // 嵌套类型
        public enum Color { Red, Blue, Tan }; // 嵌套枚举类型
    }
    class Program
    {
        static void Main(string[] args)
        {
            //例如：为了从TopLevel类以外访问Color.Red，我们必须：
            TopLevel.Color color = TopLevel.Color.Red;
            // 所有类型都可以被嵌套，但只有类和结构体才能嵌套其他类型。
        }
    }
}